home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / vmed.arc / ED7.CCC < prev    next >
Text File  |  1985-12-03  |  4KB  |  199 lines

  1. /*    Screen editor:    prompt line module
  2.  *
  3.  *    Module: ed7/ccc
  4.  *    Date: November 15, 1983
  5.  *    Changed: February 17, 1984
  6.  */
  7.  
  8. #include ed0
  9.  
  10. /* define where things on top line will be displayed */
  11. #define    xline    0    /* for line number */
  12. #define    xcolumn    10    /* for column number */
  13. #define    xmem    19    /* for memory available */
  14. #define    xlodsav    32    /* for 'load save' file name */
  15. #define    xmode    48    /* for mode of operation */
  16.  
  17. /* data global to this module */
  18.  
  19. /* Define the prompt line data */
  20. char    pmtln[MAXLEN],        /* mode */
  21.         pmtfn[SYSFNMAX];    /* file name for load/save */
  22.  
  23. /* put message on local device and
  24.  * wait for response.
  25.  */
  26. pmtmess(s1,s2)    char *s1,*s2;
  27. {    char    x,y;
  28. /* save cursor */
  29.     x = outgetx();
  30.     y = outgety();
  31.     outxy(0,0);
  32. /* make sure line is correct */
  33.     outdelln();
  34.     pmtline1();
  35.     pmtcol1(x);
  36. /* output error message */
  37.     fmtsout(s1,outgetx());
  38.     fmtsout(s2,outgetx());
  39. /* wait for input from console */
  40.     syscin();
  41. /* redraw prompt line */
  42.     pmttop(x);
  43. /* restore cursor */
  44.     outxy(x,y);
  45. }
  46.  
  47. /* write new mode message on prompt line */
  48. pmtmode(s)    char *s;
  49. {    char    x,y;
  50. /* save cursor */
  51.     x = outgetx();
  52.     y = outgety();
  53. /* redraw whole line */
  54.     outxy(0,0);
  55.     outdelln();
  56.     pmtline1();
  57.     pmtcol1(x);
  58.     pmtmem();
  59.     pmtfile1(pmtfn);
  60.     pmtmode1(s);
  61. /* restore cursor */
  62.     outxy(x,y);
  63. }
  64.  
  65. /* update file name on prompt line */
  66. pmtfile(s)    char *s;
  67. {    char    x,y;
  68. /* save cursor on entry */
  69.     x = outgetx();
  70.     y = outgety();
  71. /* redraw whole line */
  72.     outxy(0,0);
  73.     outdelln();
  74.     pmtline1();
  75.     pmtcol1(x);
  76.     pmtmem();
  77.     pmtfile1(s);
  78.     pmtmode1(pmtln);
  79. /* restore cursor */
  80.     outxy(x,y);
  81. }
  82.  
  83. /* change mode on prompt line to edit: */
  84. pmtedit()
  85. {    pmtmode("edit:");    }
  86.  
  87. /* update line and column numbers on prompt line */
  88. pmtline()
  89. {    char    x,y;
  90. /* save cursor on entry */
  91.     x = outgetx();
  92.     y = outgety();
  93. /* redraw whole line */
  94.     pmttop(x);
  95. /* restore cursor */
  96.     outxy(x,y);
  97. }
  98.  
  99. /* update just the column number on prompt line */
  100. pmtcol()
  101. {    char    x,y;
  102. /* save cursor on entry */
  103.     x = outgetx();
  104.     y = outgety();
  105. /* update column number */
  106.     pmtcol1(x);
  107. /* update cursor */
  108.     outxy(x,y);
  109. }
  110.  
  111. /* update mode. call getcmnd() to write on prompt line */
  112. pmtcmnd(mode,buffer)    char *mode,*buffer;
  113. {    char    x,y;
  114. /* save cursor */
  115.     x = outgetx();
  116.     y = outgety();
  117.     pmtmode1(mode);
  118. /* user types command on prompt line */
  119.     getcmnd(buffer,outgetx());
  120. /* restore cursor */
  121.     outxy(x,y);
  122. }
  123.  
  124. /* update and print mode */
  125. pmtmode1(s)    char *s;
  126. {    int    i;
  127.     outxy(xmode,0);
  128.     fmtsout(s,xmode);
  129.     i = 0;
  130.     while (pmtln[i++] = *s++)
  131.         ;
  132. }
  133.  
  134. /* update the amount of memory available */
  135. pmtmem()
  136. {    int    mem;
  137.     char    x,y;
  138.     x = outgetx();
  139.     y = outgety();
  140.     mem = buffree();
  141.     outxy(xmem,0);
  142.     fmtsout("lns: ",xmem);
  143.     putdec(mem,6);
  144.     outxy(x,y);
  145. }
  146.  
  147. /* print the file name on the prompt line */
  148. pmtfile1(s)    char *s;
  149. {    int    i;
  150.     outxy(xlodsav,0);
  151.     if (*s == EOS)
  152.         fmtsout("no file",xlodsav);
  153.     else
  154.         fmtsout(s,xlodsav);
  155.     i = 0;
  156.     while (pmtfn[i++] = *s++)
  157.         ;
  158. }
  159.  
  160. /* print the line number on the prompt line */
  161. pmtline1()
  162. {    outxy(xline,0);
  163.     fmtsout("ln: ",xline);
  164.     putdec(bufln(),5);
  165. }
  166.  
  167. /* print column number of the cursor */
  168. pmtcol1(x)    char x;
  169. {    outxy(xcolumn,0);
  170.     fmtsout("col: ",xcolumn);
  171.     putdec(x+1,3);
  172. }
  173.  
  174. /* redraw prompt line */
  175. pmttop(x)    char x;
  176. {    outxy(0,0);
  177.     outdelln();
  178.     pmtline1();
  179.     pmtcol1(x);
  180.     pmtmem();
  181.     pmtfile1(pmtfn);
  182.     pmtmode1(pmtln);
  183. }
  184.  
  185. /* update just the column number on prompt line */
  186. pmtlnx()
  187. {    char    x,y;
  188. /* save cursor on entry */
  189.     x = outgetx();
  190.     y = outgety();
  191. /* update column number */
  192.     pmtline1();
  193.     pmtcol1(x);
  194. /* update cursor */
  195.     outxy(x,y);
  196. }
  197.  
  198. /* end module ed7/ccc */
  199.